﻿using System.ComponentModel;
using System.Diagnostics;
using Infrastructure;
using Microsoft.Practices.Prism.Commands;

namespace ViewsAndViewModels.Interfaces
{
    public interface IMainContentViewModel : IViewModel
    {
        [Description("The number of characters in the generated password; bound to the slider view")]
        int PasswordLength { [DebuggerStepThrough] get; [DebuggerStepThrough] set; }

        [Description("If generated password will contain left-handed keys, bound to a checkbox")]
        bool IsLeftHandChecked { [DebuggerStepThrough] get; [DebuggerStepThrough] set; }

        [Description("If generated password will contain right-handed keys, bound to a checkbox")]
        bool IsRightHandChecked { [DebuggerStepThrough] get; [DebuggerStepThrough] set; }

        [Description("If the generated password will contain symbols, bound to a checkbox")]
        bool IsIncludeSymbolsChecked { [DebuggerStepThrough] get; [DebuggerStepThrough] set; }

        [Description("Final value of the generated password, bound to a textbox")]
        string ComputedPassword { [DebuggerStepThrough] get; [DebuggerStepThrough] set; }

        DelegateCommand CopyToClipboardCommand { get; }
        DelegateCommand SaveToFileCommand { get; }
        DelegateCommand RegenerateCommand { get; }
    }
}
